#ifndef FASYS_FASYS_CHANNELS_MANAGAER_HPP
#define FASYS_FASYS_CHANNELS_MANAGAER_HPP

#include "ichannels.hpp"

namespace fasys{

class messages_channels;
class channels_observers_container;

class channels_manager:
    public ichannels
{
public:
  virtual ~channels_manager();
  channels_manager();
  virtual void publish(message& m);
  virtual void subscribe( const std::string& channel, ichannel_observer* obs);
  virtual void describe( const std::string& channel, ichannel_observer* obs);
  virtual void describe( ichannel_observer* obs);
private:
  messages_channels* _messages_channels;
  channels_observers_container* _observers;
};

}

#endif
